import java.sql.*;

public class DataBaseConnection {

	Connection con;

	public Boolean Conectar(String usuario, String contrasenia, String ip){
		String url="jdbc:oracle:thin:@"+ip+":1521";
		String user=usuario;
		String pass=contrasenia;
		try {
			//Registra los drivers
			DriverManager.registerDriver(new oracle.jdbc.OracleDriver());

			// Conexion a la basRe de datos
			this.con = DriverManager.getConnection(url, user, pass);

			return true;
		}
		catch (SQLException e) {
			return false;

		}
		
	}

	public boolean Desconectar(){
		try {
			con.close();
			return true;
		} catch (SQLException e) {
			return false;
		}
	}

	private Statement CreateStatement(){
		try {
			return con.createStatement();
		} catch (SQLException e) {
			return null;
		}
	}
	
	/**
	 * Dada una consulta SQL por parametro, la ejecuta
	 * @param query
	 * @return conjunto de resultados 
	 */
	public ResultSet ExecuteQuery(String query){
		Statement st=CreateStatement();
		try {
			ResultSet rs=st.executeQuery(query);
			return rs;
		} catch (SQLException e) {
			return null;
		}	
	}
	
	
	/**
	 * Dada una consulta SQL por parametro, ejecuta un UPDATE a la base de datos
	 * @param query
	 * @return cantidad de filas alteradas
	 */
	public int ExecuteUpdate(String query){
		Statement st=CreateStatement();
		try {
			int salida = st.executeUpdate(query);
			return salida;
		} catch (SQLException e) {
			return 0;
		}	
	}
	
	public void Commit(){
		try {
			con.commit();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	/**
	 * Setea el AutoCommit en el valor dado por parametro
	 * @param valor
	 */
	public void setAutoCommit(boolean valor){
		try {
			con.setAutoCommit(valor);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	
}

